////////////////////////////////////////////////////////////////////////////////
//
//  This program is free software; you can redistribute it and/or modify 
//  it under the terms of the GNU Lesser General Public License as published 
//  by the Free Software Foundation; either version 3 of the License, or (at 
//  your option) any later version.
//
//  This program is distributed in the hope that it will be useful, but 
//  WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
//  or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 
//  License for more details.
//
//  You should have received a copy of the GNU Lesser General Public License 
//  along with this program; if not, see <http://www.gnu.org/copyleft/lesser.html>.
//
////////////////////////////////////////////////////////////////////////////////

package merapi.gps.driver;

import java.io.InputStream;
import java.io.OutputStream;

/**
 *  An interface definition for a class that acts as a driver for GPS hardware  
 *  
 *  @author Adam Flater - adamflater.net
 */
public interface IGPSDriver 
{
    //--------------------------------------------------------------------------
    //
    //  Properties
    //
    //--------------------------------------------------------------------------

	/**
	 *  The InputStream from the associated gps hardware (read only) 
	 */
	public InputStream getInputStream();

	/**
	 *  The OutputStream from the associated gps hardware (read only) 
	 */
	public OutputStream getOutputStream();

	
	//--------------------------------------------------------------------------
	//
	//  Methods
	//
	//--------------------------------------------------------------------------

	/**
	 *   Open a connection to the gps hardware
	 */
	public boolean connect();

	/**
	 *   Close the connection to the gps hardware
	 */
	public boolean disconnect();
}

